1. Field of the Invention
This application relates generally to the field of information technology, and more specifically, to a system and method for creating and modifying test data files including special test cases for a particular computer program.
2. Description of the Related Art
The production of a computer program or the automation of a business process generally includes several stages, including a developmental phase and a testing phase. The testing phase is essential to ensure that the application logic of the automated business process (created during the development phase) functions in an expected and reliable manner. Such a testing phase becomes even more critical when the application logic of the automation involves functionality that demands accuracy and precision, such as financial algorithms or authorization/security algorithms.
The current process for granting credit in the United States generally involves a number of processes, including, but not limited to, the entry of application data (or inquiry data) into an automated system, the parsing of that data, the issuance of a request for additional data associated with the applicant, the running of business rules associated with the bank's credit policy, the rendering of a decision to grant or not to grant credit to the applicant, the determination of lending parameters (including loan amount, interest rate and term), and the booking of the loan on a loan servicing system. The inquiry data may come from a variety of sources. For example, the data may be entered automatically into a lending platform from an Internet portal, or it may be entered manually from a handwritten loan application or information provided to a call center. The inquiry data is the starting point for a loan application, and it is used to pull additional data from other sources.
Because the processing of a loan application involves pulling data from sources other than the initial loan application, any test data files used to test the business logic of the automated decisioning process must incorporate data from these external sources. Under these circumstances, finding or creating test data files that will test every facet of the application logic of a computer program can be tedious, laborious, and time-consuming. Software developers often spend countless hours creating and hand-editing test data files or, alternatively, rely on a volume test that might miss certain conditions, such as obscure or special test cases.
For example, in the financial industry, most large or mid-sized financial institutions have at least some form of automated decisioning process (e.g., application logic) in their credit-granting operations. The decisioning process often involves taking bank rules and lending policies and incorporating them into an automated system that gathers external data, aggregates that data, and uses it to provide automated decisions. The automated system applies the institution's business rules and policies to recommend whether a bank or financial institution should offer credit to an applicant, and, if so, on what terms the credit should be offered.
Accurately assessing a borrower's ability and willingness to pay back loaned money requires personal experience and knowledge of the borrower, or comprehensive and indicative information on the borrower's finances and behavior in the business community. For large financial institutions, it is impossible to have a personal relationship and understanding of each customer's propensity to repay a loan. Federal and state governments have also enacted laws that require financial institutions to ensure all clients are treated equitably and consistently. As a financial institution gets larger, this becomes more and more difficult to do based on personal relationships.
The majority of financial institutions in the United States have gone to using credit bureau data and a consistent credit policy for making decisions on granting credit for their clients. The larger institutions have gone one step further by automating the decisioning process through the use of computer code that gathers all applicable data points from a consumer's credit application and from other sources of indicative information, including credit bureau information, fraud databases, collateral valuation services, and others. Institutions can then evaluate the information through a set of logical business and lending policy rules. These systems are called “decision engines” or “business rules engines,” and they give the institutions that use them a significant competitive advantage by lowering operating costs and improving the quality and consistency of credit decisions.
Requesting and analyzing a credit file or other indicative information is one of the core components of an automated or manual decisioning process. Typically, consumer credit files consist of information on the applicant's credit history, which is primarily used within the decisioning process. The credit risk managers for the financial institution are responsible for ensuring that the decisions made by the automated system are correct and accurate. These credit risk managers are responsible for the decisioning process, which, if functioning improperly, could result in the loss of hundreds of millions of dollars.
Currently, financial institutions rely mainly upon three major consumer credit bureaus for supplying credit information regarding an applicant. The data that is sent by the bureaus is complex and difficult to interpret due to the variance in and inconsistent nature of each borrower's data and the need for the bureaus to be able to send as much data as possible in the smallest, most efficient transmission possible. Each financial institution has a unique way of selecting which data providers (or combination of data providers) to use and how to aggregate the raw credit bureau data into usable data points called attributes. There is an entire industry devoted to determining the statistically most relevant data in a credit file and how that data should be aggregated and scored to provide a true indicator of a customer's propensity to repay a loan. The accurate and efficient testing of automated, aggregated logic, as well as business policy rules, is critical to the operation and profitability of a large financial institution.
The use of the three major consumer credit bureaus for supplying credit files further complicates the testing process. Each consumer credit bureau has its own format for credit files stored within a respective repository. These consumer credit bureaus frequently change the format of the credit files to meet legal requirements or to provide additional value to their customers. Consequently, the format of the credit file is complex and subject to change. Data on individual consumers is continually updated as financial institutions send updated performance information for each consumer. Most major institutions require the ability to pull credit files from all three major consumer credit bureaus and the flexibility to change the preferred bureau used based on a variety of factors.
For testing purposes, the three major consumer credit bureaus provide sample credit files in their particular format to be used by financial institutions that have decisioning logic programs. Unfortunately, the sample credit files provide very limited test data for testing the many aspects of the decisioning logic, and they are also subject to change without notice. Moreover, the sample credit files are not geared toward a specific lender's criteria and, therefore, cannot be used to test all of the varying aspects of the lender's decisioning logic, especially the aspects of the decisioning logic that represent situations that do not occur on a regular basis.
The existing process for testing automated decisioning logic includes the use of test data files provided by each credit bureau or the use of real consumer files that have been previously pulled by the financial institution from the consumer credit bureaus. Such test data files from the credit bureaus are limited and subject to change without notice. More importantly, the financial institution attempting to test the decisioning logic does not have direct control over the content of the test data files provided by the consumer credit bureaus. Due to laws relating to privacy protection and the increased concern by consumers over privacy issues, the use of real consumer files that have been previously pulled by the financial institution from the consumer credit bureaus is now under general review.
In addition, using the test data files provided by credit bureaus and/or real consumer files previously pulled by the financial institution to test the decisioning logic of a computer program is insufficient because those files cannot possibly provide enough data to completely test all of the decisioning logic and corresponding conditions. Some of the conditions of the decisioning logic can be extremely rare, occurring less than once in 10,000 credit files; however, the consequence of that piece of logic being wrong in a production environment could mean the loss of hundreds of thousands of dollars each time it is encountered, depending on the size of loans being approved by the automated system.
Financial institutions generally create a test bed of test data files for testing decisioning logic. The test bed of test data files typically includes test data files provided by credit bureaus and/or real consumer files previously pulled by the financial institution, as described above. Without a known result for each test data file and a stable test set, automated regression testing is extremely difficult and time-consuming. Currently, the only option is to create a sufficient test bed of test data files, run them through the system, and then have the financial institution manually review each automated decision and compare it with hand-calculated results to ensure that the decisioning logic is making the correct decision. The current process does not provide adequate or comprehensive testing of automated decisioning systems. In addition, the labor necessary to provide even the current limited testing is expensive and inefficient.
What is needed is a system and method for creating and modifying test data files in an efficient, accurate, and automated manner, such that the test data files encompass all of the conditions within the application logic of the computer program. It is to such a device that the present invention is primarily directed.
A principle object of the present invention is to provide a system and method for creating and modifying test data files needed to accurately test every aspect of a computer program's application logic.
Another object of the present invention is to provide a system and method for creating and modifying test data files in the native format for the specific data file being used.
Still another object of the present invention is to provide a system and method for creating and modifying test data files that includes an automated test data file builder that builds files based on the data aggregation logic used in the automated system.
It is another object of the present invention to provide a system and method for defining and parsing complex data structures for easy editing and conversion of new or modified data formats and for creating test data files from such new or modified data formats.
Another object of the present invention is to provide a system and method for creating and modifying test data files that include a test data file storage unit, adapted to permit users to build a reusable library of test data files, that can be called by an automated decision engine in the same manner as a call to the actual data provider.
Still another object of the present invention is to provide a system and method for creating and modifying test data files, wherein segments or portions of the test data files may be stored in a test data file storage unit for reuse in the creation of future test data files.
It is another object of the present invention to provide a system and method for creating and modifying test data files that include a test data file storage unit adapted to automatically retrieve test file data from the test data file storage unit.
Another object of the present invention is to provide a system and method for creating and modifying test data files that provides the ability to place within the test data file the expected result for that test data file, wherein the expected result can then be displayed as part of the testing process.
Still another object of the present invention is to provide a system and method for creating and modifying test data files that takes actual production data and scrubs any identifying or proprietary information and saves them as test files without altering the performance aspect of the file.
It is another object of the present invention to provide a system and method for creating and modifying test data files, wherein test data files may be combined into test sets that allow the user to create logical sets of files that will test specific portions of the complete decisioning logic.
Another object of the present invention is to provide a system and method for creating and modifying test data files that allows for automated regression testing.
Still another object of the present invention is to provide a system and method for creating and modifying test data files that automates the process of defining and editing inquiry data.
It is another object of the present invention to provide a system and method for creating and modifying test data files that has the ability to translate data files from the native format of one provider to the format of another provider so that the same file can be used to test the logic of a variety of different data providers.